package com.wh.wisdomsite.xbox.ba.service;

import com.baomidou.mybatisplus.service.IService;
import com.wh.wisdomsite.xbox.ba.entity.Menu;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 菜单Service
 *
 * @version V1.0
 * @Package: com.wh.wisdomsite.xbox.us.service
 * @author: 丁奕
 * @date: 2018-08-03 11:39
 * @Copyright 公司版权所有
 * @Company 贵州万华科技有限公司Copyright (c) 2016
 **/
public abstract interface IMenuService extends IService<Menu> {
    /**
     * 返回树形菜单列表
     * @return 树形菜单列表
     */
    List<Menu> getTreeMenu();

    /**
     * 获取带子菜单的菜单
     * @param id
     * @return
     */
    Menu getMenuWithChildren(Serializable id);

    /**
     * 获取完整信息的菜单
     * @param id
     * @return
     */
    Map<String, Object> getMapById(Serializable id);

    /**
     * 根据角色ID获取所关联的菜单List
     * @param id
     * @return
     */
    List<Menu> getMenuListByRoleId(String id);

    /**
     * 将menuList转换成树形的treeMenuList
     * @param menuList
     * @return
     */
    List<Menu> toTreeMenuList(List<Menu> menuList);

    /**
     * 根据用户ID获取所有关联的菜单List
     * @param usId
     * @return
     */
    List<Menu> getMenuListByUsId(String usId);

    /**
     * 验证权限标识是否已存在
     * @param value
     * @param oldValue
     * @return
     */
    boolean permissionIsExists(String value, String oldValue);
}
